// SISTEMA : Sistema de Identificacao Criminal
// PROGRAMA : SCRP001
// O QUE FAZ � Relatorio da Ficha Indice Criminal
// Data : 11 de Setembro de 1997
package br.com.vti.sisp_sicrim.antigo.controller.programa;

import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Result;
import br.com.vti.sisp_sicrim.antigo.model.SicCadastro;
import br.com.vti.sisp_sicrim.antigo.model.SicSenha;
import br.com.vti.sisp_sicrim.antigo.util.ExceptionProgram;
import br.com.vti.sisp_sicrim.antigo.util.Scrg001;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;

/**
 * Classe : Scrp1410 O QUE FAZ � Relatorio da Ficha Indice Criminal *
 * 
 * @author Incode - Data: mai/2014
 * 
 */
// @Resource
@Path("/antigo/scrp1410")
public class Scrp1410 {
	// Views utilizadas
	SicCadastro criminalView = new SicCadastro();
	SicSenha senhaView = new SicSenha();
	// Telas/relatorios utilizados
	// Escopo - Scrm1421Report report1;
	// Escopo - Scrm1422Report report2;
	// Escopo - Scrm1423Report report3;
	// Areas globais / session
	Scrg001 scrg001;
	// Funcoes/subrotinas
	FuncoesGerais funcoes = new FuncoesGerais();
	Result result;
	Sessao sessao;
	Boolean primeiraVez = false;
	Scrp1410 scrp1410Anterior;
	String faseproc = "0";
	// private int jDataIni = 0;
	private int jDataFim = 0;
	private long jReg_geral = 0;
	private String jNomeCompleto = "";
	private String jMae = "";
	private int jData_nasc = 0;
	private String[][] dedos = new String[6][3];
	private String jDelegacia = "";
	private String jDescMunicipio = "";
	private int jMunicipio = 0;
	private String jUfRegGeral = "";
	private int jDataRegistro = 0;
	private long jNoAutos = 0;
	private int jDataAtuacao = 0;
	private long jIdentidade = 0;
	private String jPai = "";
	private String jAlcunha = "";
	private String jNomeAnterior = "";
	private int jSexo = 0;
	private int jCodMunNascimento = 0;
	private String jUfNascimento = "";
	private String jDocApresentado = "";
	private long jNumDocApresentado = 0;
	private String jOrgaoExpUf = "";
	private String jProfissao = "";
	private int jInstrucao = 0;
	private String jDescInstrucao = "";
	private String jNaturalidade = "";
	private String jAvRua = "";
	private int jNumero = 0;
	private String jBairro = "";
	private int jMunEndereco = 0;
	private String jUfEndereco = "";
	private int jCep = 0;
	private String jComplemento = "";
	private String jStatus = "";
	private String jDescreg = "";
	private int jAltura = 0;
	private String jDescAltura = "";
	private int jEstadoCivil = 0;
	private String jDescCivil = "";
	private int jCutis = 0;
	private String jDescCutis = "";
	private int jCorCabelo = 0;
	private String jDescCor = "";
	private int jTipoCabelo = 0;
	private String jDescTipocabelo = "";
	private int jCorOlhos = 0;
	private String jDescOlho = "";
	private String jSinais = "";
	private int jCompleicao = 0;
	private String jDescCompleicao = "";
	private String jNomeVitima = "";
	private String jMotivo = "";
	private int jOcorrencia = 0;
	private String[] jObservacoes = new String[5];
	private int jMatricula = 0;
	private String jNomeDigitador = "";
	private int jDataDig = 0;
	private int jHorario = 0;
	private long jFicha1 = 0;
	private long jFicha2 = 0;
	private String jMensagem = "";
	private String jFuncao = "Consulta";
	private String jFunc = "ERROS";

	public Scrp1410(Result result, Sessao sessao) {
		this.result = result;
		this.sessao = sessao;
	}

	@Post
	public void executar(int jDataIni) {
		try {
			main(jDataIni);
		} catch (Exception e) {
			throw new ExceptionProgram(e, sessao, this.getClass().getSimpleName());
		}
	}

	private void main(int jDataIni) {
		// Par�grafo: fd33()
		while (criminalView.pesquisaDataDocAtuStatusRegDifer(jDataIni, 5)) {
			jReg_geral = criminalView.getRegEstadualGeral();
			dedos[1][1] = criminalView.getPolegarDireito();
			dedos[2][1] = criminalView.getIndicadorDireito();
			dedos[3][1] = criminalView.getMedioDireito();
			dedos[4][1] = criminalView.getAnularDireito();
			dedos[5][1] = criminalView.getMinimoDireito();
			dedos[1][2] = criminalView.getPolegarEsquerdo();
			dedos[2][2] = criminalView.getIndicadorEsquerdo();
			dedos[3][2] = criminalView.getMedioEsquerdo();
			dedos[4][2] = criminalView.getAnularEsquerdo();
			dedos[5][2] = criminalView.getMinimoEsquerdo();
			jNomeCompleto = criminalView.getNomeCompleto();
			jMae = criminalView.getNomeMae();
			jData_nasc = criminalView.getDataNasc();
			jIdentidade = criminalView.getRegFederalCi();
			jUfRegGeral = criminalView.getUfRegEstadualGeral();
			jPai = criminalView.getNomePai();
			jDelegacia = criminalView.getNomeDelegacia();
			jDescMunicipio = criminalView.getMunicipioRegGeral();
			jMunicipio = criminalView.getCodigoMunicipioRegGeral();
			jNomeAnterior = criminalView.getNomeAnterior();
			jAlcunha = criminalView.getApelidoAlcunhas(1);
			jSexo = criminalView.getSexo();
			jNaturalidade = criminalView.getNaturalidade();
			jCodMunNascimento = criminalView.getCodigoMunicipioNasc();
			jUfNascimento = criminalView.getUfNaturalidade();
			jDocApresentado = criminalView.getDocumentoApresent();
			jNumDocApresentado = criminalView.getNumDocumentoApresent();
			jOrgaoExpUf = criminalView.getOrgaoExpUfUfUf();
			jStatus = String.valueOf(criminalView.getStatusReg());
			jProfissao = criminalView.getProfissao();
			jInstrucao = criminalView.getGrauInstrucao();
			jAvRua = criminalView.getAvRua();
			jNumero = criminalView.getNumero();
			jBairro = criminalView.getBairro();
			jMunEndereco = criminalView.getMunicipio();
			jUfEndereco = criminalView.getEstado();
			jCep = criminalView.getCep();
			jComplemento = criminalView.getComplemento();
			jDataRegistro = criminalView.getDataReg();
			jDataAtuacao = criminalView.getDataAtuacao();
			jAltura = criminalView.getAltura();
			jEstadoCivil = criminalView.getEstadoCivil();
			jCutis = criminalView.getCodigoCutis();
			jCorCabelo = criminalView.getCodigoCorCabelo();
			jTipoCabelo = criminalView.getCodigoTipoCabelo();
			jCorOlhos = criminalView.getCodigoCorOlhos();
			jSinais = criminalView.getMarcaPartCicatTatuag();
			jCompleicao = criminalView.getCompleicao();
			jNomeVitima = criminalView.getNomeVitima();
			jMotivo = criminalView.getMotivoPrisaoLei();
			jOcorrencia = 1;
			jObservacoes = criminalView.getObservacao();
			jDataDig = criminalView.getDataDocAtu();
			jMatricula = criminalView.getMatriculaFuncAtu();
			jHorario = criminalView.getHoraAtu();

			jDataIni = jDataDig;
			// Par�grafo: fd2()
			senhaView.consultaMatricula(jMatricula);

			jNomeDigitador = senhaView.getNome();
			switch (jStatus) {
			case "0": {
				jDescreg = "Registro Normal";
				break;
			}
			case "1": {
				jDescreg = "Registro Cancelado";
				break;
			}
			case "2": {
				jDescreg = "Registro com Mandato de Prisao preventiva";
				break;
			}
			case "3": {
				jDescreg = "Condenado";
				break;
			}
			default: {
				continue;
			}
			}
			switch (jInstrucao) {
			case 0: {
				jDescInstrucao = "Nao Informada";
				break;
			}
			case 1: {
				jDescInstrucao = "Nao Alfabetizado";
				break;
			}
			case 2: {
				jDescInstrucao = "1o. Grau Incompleto";
				break;
			}
			case 3: {
				jDescInstrucao = "1o. Grau Completo";
				break;
			}
			case 4: {
				jDescInstrucao = "2o. Grau Incompleto";
				break;
			}
			case 5: {
				jDescInstrucao = "2o. Grau Completo";
				break;
			}
			case 6: {
				jDescInstrucao = "Superior Incompleto";
				break;
			}
			case 7: {
				jDescInstrucao = "Superior Completo";
				break;
			}
			default: {
				continue;
			}
			}
			switch (jAltura) {
			case 0: {
				jDescAltura = "Nao Informada";
				break;
			}
			case 1: {
				jDescAltura = "1,60 ou Menos";
				break;
			}
			case 2: {
				jDescAltura = "1,61 - 1,70";
				break;
			}
			case 3: {
				jDescAltura = "1,71 - 1,80";
				break;
			}
			case 4: {
				jDescAltura = "1,81 - 1,90";
				break;
			}
			case 5: {
				jDescAltura = "1,91 ou Mais";
				break;
			}
			default: {
				continue;
			}
			}
			switch (jEstadoCivil) {
			case 0: {
				jDescCivil = "Nao Informado";
				break;
			}
			case 1: {
				jDescCivil = "Casado";
				break;
			}
			case 2: {
				jDescCivil = "Solteiro";
				break;
			}
			case 3: {
				jDescCivil = "DESQUITADO";
				break;
			}
			case 4: {
				jDescCivil = "Viuvo";
				break;
			}
			case 5: {
				jDescCivil = "DIVORCIADO";
				break;
			}
			default: {
				continue;
			}
			}
			switch (jCutis) {
			case 0: {
				jDescCutis = "Nao Informada";
				break;
			}
			case 1: {
				jDescCutis = "BRANCA";
				break;
			}
			case 2: {
				jDescCutis = "Preta";
				break;
			}
			case 3: {
				jDescCutis = "Parda Clara";
				break;
			}
			case 4: {
				jDescCutis = "Parda Escura";
				break;
			}
			case 5: {
				jDescCutis = "AMARELA";
				break;
			}
			default: {
				continue;
			}
			}
			switch (jCorCabelo) {
			case 0: {
				jDescCor = "Nao Informada";
				break;
			}
			case 1: {
				jDescCor = "CASTANHOS";
				break;
			}
			case 2: {
				jDescCor = "PRETOS";
				break;
			}
			case 3: {
				jDescCor = "Louros";
				break;
			}
			case 4: {
				jDescCor = "Grisalhos";
				break;
			}
			case 5: {
				jDescCor = "Ruivos";
				break;
			}
			case 6: {
				jDescCor = "Brancos";
				break;
			}
			default: {
				continue;
			}
			}
			switch (jTipoCabelo) {
			case 0: {
				jDescTipocabelo = "Nao Informado";
				break;
			}
			case 1: {
				jDescTipocabelo = "Liso";
				break;
			}
			case 2: {
				jDescTipocabelo = "Encaracolado";
				break;
			}
			case 3: {
				jDescTipocabelo = "Ondulado";
				break;
			}
			case 4: {
				jDescTipocabelo = "CARAPINHA";
				break;
			}
			default: {
				continue;
			}
			}
			switch (jCorOlhos) {
			case 0: {
				jDescOlho = "Nao Informada";
				break;
			}
			case 1: {
				jDescOlho = "CASTANHOS";
				break;
			}
			case 2: {
				jDescOlho = "PRETOS";
				break;
			}
			case 3: {
				jDescOlho = "AZUIS";
				break;
			}
			case 4: {
				jDescOlho = "VERDES";
				break;
			}
			case 5: {
				jDescOlho = "Duas Cores";
				break;
			}
			default: {
				continue;
			}
			}
			switch (jCompleicao) {
			case 0: {
				jDescCompleicao = "Nao Informada";
				break;
			}
			case 1: {
				jDescCompleicao = "Magro";
				break;
			}
			case 2: {
				jDescCompleicao = "Medio";
				break;
			}
			case 3: {
				jDescCompleicao = "Gordo";
				break;
			}
			case 4: {
				jDescCompleicao = "Troncudo";
				break;
			}
			case 5: {
				jDescCompleicao = "Raquitico";
				break;
			}
			default: {
				break;
			}
			}

			// Escopo - report1.receberTela(false, result);

			// Escopo - report2.receberTela(false, result);

			// Escopo - report3.receberTela(false, result);
		}
		Scrp1400 scrp1400 = new Scrp1400(result, sessao);
		if (criminalView.registrosProcessados() == 0) {
			scrp1400.setMensagem("               Nenhuma Ficha Foi Cadastrada Nesse Periodo.");
		}
		if (senhaView.fimDados()) {
			scrp1400.executar(null, null, null, null);
			return;
		}
		scrp1400.executar(null, null, null, null);
	}
}
